<template>
	<el-container class="home_container">
		<!-- 头部区域 -->
	  <el-header>
		  <div>
			  <img src="../assets/heima.png" alt="">
			  <span>电商后台管理系统</span>
		  </div>
		  <el-button type="info" @click="logout">退出登陆</el-button>
	  </el-header>
	  <!-- 页面主体区域 -->
	  <el-container>
		  <!-- 左侧区域 -->
	    <el-aside :width="isCollapse?'64px':'200px'">
			<div class="toggle-button" @click="toggleCollapse">|||</div>
			<!-- 侧边栏菜单区域 -->
			 <el-menu
			      background-color="#333744"
			      text-color="#fff"
			      active-text-color="#409eff"
				  :unique-opened="true"
				  :collapse="isCollapse"
				  :collapse-transition="false"
				  :router="true"
				  :default-active="activePath"
				  >
				  <!-- 一级菜单 -->
			      <el-submenu :index="item.id+''" v-for="item in menuList" :key="item.id">
			        <template slot="title">
			          <i :class="iconList[item.id]"></i>
			          <span>{{item.authName}}</span>
			        </template>
					<!-- 二级菜单 -->
			        <el-menu-item :index="'/'+subitem.path" v-for="subitem in item.children"
					 :key="subitem.id"
					 @click="saveNavState('/'+subitem.path)"
					 >
						 <template slot="title">
						   <i class="el-icon-menu"></i>
						   <span>{{subitem.authName}}</span>
						 </template>
					</el-menu-item>
			      </el-submenu>
			    </el-menu>
		</el-aside>
		<!-- 右侧区域 -->
	    <el-main>
			<!-- 设置路由占位符 -->
			<router-view></router-view>
		</el-main>
	  </el-container>
	</el-container>
</template>

<script>
	export default{
		data(){
			return{
				menuList:[],
				iconList:{
					'125':'iconfont icon-add-account',
					'103':'iconfont icon-unlock-fill',
					'101':'iconfont icon-goumaipianhao',
					'102':'iconfont icon-wuliudingdan',
					'145':'iconfont icon-tradingdata'
				},
				isCollapse:false,
				//被激活的链接地址
				activePath:''
			}
		},
		created(){
			this.getMenuList()
			//当组件被创建的时候。肯定会执行生命周期函数，所以放置到这里来
			//从sessionStorage中把保存的激活菜单的地址取出来
			this.activePath=window.sessionStorage.getItem('activePath')
		},
		methods:{
			logout(){
				//清空客户端的sessionStorage中保存的token数据
				window.sessionStorage.clear()
				//跳转到登陆页面
				this.$router.push('/login')
				this.$message.info("退出成功")
			},
			//获取后台中左侧菜单的数据
			async getMenuList(){
				//不传入参数，那么就直接接收呗
				const {data:res}=await this.$http.get('menus')
				//如果失败，则报错
				if(res.meta.status!==200)return this.$message.error(res.meta.msg)
				//获取数据成功，则把数据保存起来
				this.menuList=res.data
			},
			//点击按钮，切换菜单的折叠和展开
			toggleCollapse(){
				this.isCollapse=!this.isCollapse
			},
			//保存链接的激活状态
			saveNavState(activePath){
				window.sessionStorage.setItem('activePath',activePath)
				//当点击其他链接时，还需要为activePath重新覆一下值
				this.activePath=activePath
			}
		}
	}
</script>

<style lang="less" scoped>
	.home_container{
		height: 100%;
		.el-header{
			background-color: #373d41;
			display: flex;
			justify-content: space-between;
			padding-left: 0;
			align-items: center;
			color: #fff;
			font-size: 20px;
			>div{
				display: flex;
				align-items: center;
				span{
					margin-left: 15px;
				}
			}
		}
		.el-aside{
			background-color: #333744;
			.toggle-button{
				background-color: #4A5064;
				font-size: 10px;
				line-height: 24px;
				text-align: center;
				cursor: pointer;
				color: #fff;
				letter-spacing: 0.2em;
			}
			.el-menu{
				border-right: none;
				.iconfont{
					margin-right: 15px;
				}
			}
			
		}
		.el-main{
			background-color: #eaedf1;
		}
	}
	
</style>
